package com.webmagic.demo;

import lombok.Getter;
import lombok.Setter;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.model.AfterExtractor;
import us.codecraft.webmagic.model.ConsolePageModelPipeline;
import us.codecraft.webmagic.model.OOSpider;
import us.codecraft.webmagic.model.annotation.ExtractBy;
import us.codecraft.webmagic.model.annotation.ExtractByUrl;
import us.codecraft.webmagic.model.annotation.HelpUrl;
import us.codecraft.webmagic.model.annotation.TargetUrl;
import us.codecraft.webmagic.pipeline.JsonFilePipeline;

import java.util.List;

/**
 * @description
 * @Auther zhanglu
 * @Date 2018/4/16 上午10:10
 */
@TargetUrl(value = "(http://www.kuaidaili.com/proxylist/(\\d)/)|(http://www.kuaidaili.com/free/inha/(\\d)+/)")
@Getter
@Setter
public class GithubRepo {
    @ExtractBy("//td[@data-title='IP']/text()")
    List<String> IP;
    @ExtractBy("//td[@data-title='PORT']/text()")
    List<String> PORT;
    @ExtractBy("//td[@data-title='匿名度']/text()")
    List<String> 匿名度;
    @ExtractBy("//td[@data-title='类型']/text()")
    List<String> 类型;
    @ExtractBy("//td[@data-title='get/post支持']/text()")
    List<String> get_post支持;
    @ExtractBy("//td[@data-title='位置']/text()")
    List<String> 位置;
    @ExtractBy("//td[@data-title='响应速度']/text()")
    List<String> 响应速度;
    @ExtractBy("//td[@data-title='最后验证时间']/text()")
    List<String> 最后验证时间;

    public static void main(String[] args) {
        OOSpider.create(Site.me().setDomain("www.kuaidaili.com"),
                 new ConsolePageModelPipeline()//这里使用的Pipeline是打印到控制台。
                , GithubRepo.class)
                .addUrl("http://www.kuaidaili.com/proxylist/1/")//
                .addUrl("http://www.kuaidaili.com/free/")//
                .addPipeline(new JsonFilePipeline("/Users/zhang.lu/Documents/instrument/"))
                .thread(3)//
                .run();
    }
}
